package edu.cque.jt.consumer.service.factory;

import edu.cque.jt.consumer.service.RemoteProviderService;
import feign.hystrix.FallbackFactory;
import org.springframework.stereotype.Component;

/**
 * @author Hua
 * @create 2022-07-20 14:13
 * 远程服务回调工厂
 * 在进行远程服务调用时,假如调用的服务突然不可用了或者调用过程超时了,怎么办呢?一般服务消费端会给出具体的容错方案
 */
@Component
public class ProviderFallbackFactory implements FallbackFactory<RemoteProviderService> {
    /*
    当远端服务不可用时,会执行该方法,进行一个异常提示的优化
    基于此对象处理RemoteProviderService接口调用时出现的服务中断,超时等问题
     */
    @Override
    public RemoteProviderService create(Throwable throwable) {
        //jdk8 lambda表达式
        return (msg) -> "服务忙,请稍后再试!!!!";

    }
}
